SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TXMVTO_INTE_I02]
/*-------------------------------------------------------------------*/
/*----- Empresa           : OFISIS S.A.                          ----*/
/*----- Cliente           : OFISIS S.A.                          ----*/
/*----- Sistema           : Contabilidad                         ----*/
/*----- Modulo            : Empresa                              ----*/
/*----- Programa          : Paso definitivo a Contabilidad       ----*/
/*----- Nombre            : SP_TXMVTO_CNTB_I02                   ----*/
/*----- Script            : TXMVTO_CNTB                          ----*/
/*----- Desarrollado por  : MALU                                 ----*/
/*----- Fecha             : 28/05/1998                           ----*/
/*----- Base de Datos     : MS SQL Server                        ----*/
/*----- Version BD        : 7.0                                  ----*/
/*-------------------------------------------------------------------*/
/*----- MODIFICADO POR : PERCY GARCIA ---*/
/*---- FECHA MODIFICADO : 09/02/2004     --*/
/*--- DETALLE:   SE COMENTO LLAMADA AL PROCEDURE SP_TTINTE_CNTB_U01 AL INICIO AHORA SE LLAMA AL
PROCEDURE SP_TTINTE_CNTB_U02 QUE ACTUALIZA SOLO LAS OPERACIONES DEL PROCESO  -----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- MODIFICADO 2 POR : PERCY GARCIA                          ----*/
/*----- FECHA MODIFICADO : 26/10/2004                            ----*/
/*----- DETALLE MODIF    : SE AUMENTO CAMPO ST_CANC_DOCU EN EL INSERT
PARA DIF DE CAMBIO EN LINEA                                      ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- MODIFICADO 3 POR : GUSTAVO ESPINOZA ESPINOZA             ----*/
/*----- FECHA MODIFICADO : 04/07/2007                            ----*/
/*----- DETALLE MODIF    : se adiciono la unidad y operacion al momento de 
evaluar el cambio de asiento contable                                      ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- MODIFICADO 3 POR : PERCY GARCIA                          ----*/
/*----- FECHA MODIFICADO : 15/07/2009                            ----*/
/*----- DETALLE MODIF    : SE ORDENO JOINS   ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- Drop proc SP_TXMVTO_INTE_I02                             ----*/
/*----- Grant all on SP_TXMVTO_INTE_I02 to PUBLIC                ----*/
/*----- exec SP_TXMVTO_INTE_I02 '01', 'OFITESO', 2, 'N', 'D'     ----*/
/*-------------------------------------------------------------------*/
 @ISCO_EMPR           TD_VC_002,
 @ISCO_USUA           TD_VC_008,
 @IDFE_USUA           TD_DT_001,  
 @ISCO_SIST           TD_VC_008,
 @INNU_PROC           TD_IN_001,
 @ISTI_INTE           TD_VC_001,
 @IST_DEFI            TD_VC_001

AS
Declare
@CSCO_EMPR	      TD_VC_002,
@CNNU_CNTB_EMPR       TD_IN_001,
@CSCO_UNID_CNTB       TD_VC_003,
@CSCO_OPRC_CNTB       TD_VC_003, 
@CNNU_ANNO            TD_IN_004_ANNO,
@CNNU_MESE            TD_IN_002_MESE,
@CSNU_ASTO            TD_VC_010,
@CNNU_SECU            TD_IN_002,
@CDFE_ASTO_CNTB       TD_DT_001,
@CSCO_CNTA_EMPR       TD_VC_020,
@CSTI_AUXI_EMPR       TD_VC_001,
@CSCO_AUXI_EMPR       TD_VC_020,
@CSTI_DOCU            TD_VC_003,
@CSNU_DOCU            TD_VC_020,
@CDFE_DOCU            TD_DT_001,
@CDFE_DOCU_VENC       TD_DT_001,
@CSTI_CAMB            TD_VC_003,
@CSCO_MONE            TD_VC_003,
@CNFA_CAMB            TD_NU_015_006,
@CNFA_CAMB_DIAR       TD_NU_015_006,
@CSTI_OPER            TD_VC_003,
@CNIM_MVTO_ORIG       TD_NU_016_004,
@CNIM_MVTO_CNTB       TD_NU_016_004,
@CSDE_GLOS            TD_VC_100,
@CSTI_DOCU_REFE       TD_VC_003,
@CSNU_DOCU_REFE       TD_VC_020,
@CDFE_DOCU_REFE       TD_DT_001,
@CSNO_GIRA            TD_VC_100,
@CDFE_ENTR_CHEQ       TD_DT_001,
@CDFE_PROG_CHEQ       TD_DT_001,       
@CSCO_ORDE_SERV       TD_VC_050,
@CSSI_MVTO_CNTB       TD_VC_003,
@CSCO_UNID_ORIG       TD_VC_003,
@CSCO_OPRC_ORIG       TD_VC_003,
@CSNU_ASTO_ORIG       TD_VC_010,
@CSST_OTRS            TD_VC_020,
@CSNU_PROC            TD_IN_001,  
@CNNU_PROC_SECU       TD_IN_001,
@CSST_IMPR_CHEQ       TD_VC_001,
@CSST_FLAG            TD_VC_020,
@CSCO_USUA_MODI       TD_VC_008,
@CDFE_USUA_MODI       TD_DT_001, 
@CNCO_TABL_ORIG       TD_IN_001,
@CSCO_CLAV_TAOR       TD_VC_100,
@VSNO_TABL            TD_VC_100,
@VNNU_LLAV            TD_IN_001,
@VSNU_ANNO            TD_VC_004, 
@VSNU_MESE            TD_VC_002, 
@VSCA_LLAV            TD_VC_050, 
@VSPK_0001            TD_VC_100,
@VSPK_0002            TD_VC_100,
@VSPK_0003            TD_VC_100,
@VSPK_0004            TD_VC_100,
@VSPK_0005            TD_VC_100,
@VSPK_0006            TD_VC_100,
@VSPK_0007            TD_VC_100,
@VSPK_0008            TD_VC_100,
@VSPK_0009            TD_VC_100,
@VSPK_0010            TD_VC_100,
@VSPK_0011            TD_VC_100,
@VSPK_0012            TD_VC_100,
@VSPK_0013            TD_VC_100,
@VSPK_0014            TD_VC_100,
@VSPK_0015            TD_VC_100,
@VSTI_DATO_0001       TD_VC_001,
@VSTI_DATO_0002       TD_VC_001,
@VSTI_DATO_0003       TD_VC_001,
@VSTI_DATO_0004       TD_VC_001,
@VSTI_DATO_0005       TD_VC_001,
@VSTI_DATO_0006       TD_VC_001,
@VSTI_DATO_0007       TD_VC_001,
@VSTI_DATO_0008       TD_VC_001,
@VSTI_DATO_0009       TD_VC_001,
@VSTI_DATO_0010       TD_VC_001,
@VSTI_DATO_0011       TD_VC_001,
@VSTI_DATO_0012       TD_VC_001,
@VSTI_DATO_0013       TD_VC_001,
@VSTI_DATO_0014       TD_VC_001,
@VSTI_DATO_0015       TD_VC_001,
@VSTI_DATO_0016       TD_VC_001,
@VSNU_ASTO_AUXI       TD_VC_010,
@VNNU_CONT            TD_IN_001,
@VSCA_WHER            VarChar(1000),
@VNCA_INIC            TD_IN_001,
@VNPO_INIC            TD_IN_001,
@VSCO_CLAV_TAOR       TD_VC_100,
@VNCA_CARA            TD_IN_001,
@VSVA_RECU            TD_VC_255,
@VSNU_ASTO            TD_VC_010,
@VNLO_CADE            TD_IN_001,
@VSNU_CNTB_EMPR       TD_VC_255,
@VNNU_ANNO            TD_IN_004_ANNO,
@VNNU_MESE            TD_IN_002_MESE,
@VSCA_UPDA            TD_VC_255,
@VSCA_NUCN            TD_VC_255,
@VSCA_COUN            TD_VC_255,
@VSCA_COOP            TD_VC_255,
@VSCA_NUAN            TD_VC_255,
@VSCA_NUME            TD_VC_255,
@VSCA_ASIE            TD_VC_255,
@VSCA_RECU            TD_VC_255,
@VNNU_POSI            TD_IN_001,
@VNNU_ULTI_ASTO       TD_IN_001,
@VNNU_ULTI_AUXI       TD_IN_001,
@VSNU_ULTI_AUXI       TD_VC_010,
@VSNU_ASTO_ANTE       TD_VC_010,
@VSCO_UNID_ANTE       TD_VC_003,
@VSCO_OPRC_ANTE       TD_VC_003,
@VSCO_USUA_MODI       TD_VC_008,
@VNNU_SECU	      TD_IN_002, --INT,
@CSCO_TIPO_OPER       TD_VC_003, 
-- VARIABLES
@VSID_GANA_REDO       TD_VC_003, 
@VSCO_GANA_REDO       TD_VC_020, 
@VSID_PERD_REDO       TD_VC_003,
@VSCO_PERD_REDO       TD_VC_020, 
@VSCO_MONE            TD_VC_003,
@VNNU_FACT_REDO       TD_NU_015_006,
@VNTO_SALD            TD_NU_015_006, 
-- NUEVO
@VSCO_OPRC_CNTB       TD_VC_003,
@VSCO_UNID_CNTB       TD_VC_003, 
@CSST_CANC_DOCU       TD_VC_001  

Begin Tran  SP_TXMVTO_INTE_I02

  /***  Actualiza Correlativo ****/ 
Exec SP_TTINTE_CNTB_U02 @ISCO_EMPR, @ISCO_SIST, @INNU_PROC

  Select @VSNU_ASTO_AUXI = '@@@'
  Select @VSNU_ASTO_ANTE = '@@@'
  Select @VSCO_UNID_ANTE = '@@@'
  Select @VSCO_OPRC_ANTE = '@@@'
  Select @VNNU_SECU = 1

  Declare CU_TXMVTO_INTE_I02_1 Cursor For
  Select CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,
         NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB,
         CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU,
         NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE,
         FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,
         IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE,
         FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ,
         CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG,
         CO_OPRC_ORIG, NU_ASTO_ORIG, ST_OTRS, NU_PROC, NU_PROC_SECU,
         Isnull(ST_IMPR_CHEQ, 'N'), ST_FLAG, CO_USUA_MODI, FE_USUA_MODI,
         CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER, ST_CANC_DOCU
  From   TXMVTO_INTE
  Where  CO_EMPR = @ISCO_EMPR
  And    NU_PROC = @INNU_PROC 
  Order  By CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO, NU_SECU

  Open CU_TXMVTO_INTE_I02_1
  Fetch CU_TXMVTO_INTE_I02_1 Into
         @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,
         @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO, @CNNU_SECU, @CDFE_ASTO_CNTB,
         @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU,
         @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE,
         @CNFA_CAMB, @CNFA_CAMB_DIAR, @CSTI_OPER, @CNIM_MVTO_ORIG,
         @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,
         @CDFE_DOCU_REFE, @CSNO_GIRA, @CDFE_ENTR_CHEQ, @CDFE_PROG_CHEQ, 
	 @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, @CSCO_UNID_ORIG,
         @CSCO_OPRC_ORIG, @CSNU_ASTO_ORIG, @CSST_OTRS, @CSNU_PROC, 
         @CNNU_PROC_SECU, @CSST_IMPR_CHEQ, @CSST_FLAG, @CSCO_USUA_MODI, 
	 @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER, 
	 @CSST_CANC_DOCU

  While  @@Fetch_status = 0
  Begin
    
    If @CSCO_UNID_CNTB + @CSCO_OPRC_CNTB + @CSNU_ASTO != @VSCO_UNID_ANTE + @VSCO_OPRC_ANTE + @VSNU_ASTO_ANTE
    Begin
       -- Saca Asiento que Corresponde
       Select @VNNU_ULTI_ASTO = NU_ULTI_ASTO
       From   TCFECH_PROC
       Where  CO_EMPR      = @CSCO_EMPR   
       And    NU_CNTB_EMPR = @CNNU_CNTB_EMPR
       And    CO_UNID_CNTB = @CSCO_UNID_CNTB
       And    CO_OPRC_CNTB = @CSCO_OPRC_CNTB
       And    NU_ANNO      = @CNNU_ANNO
       And    NU_MESE      = @CNNU_MESE

       Select @VNNU_ULTI_AUXI = Convert(Integer, @CSNU_ASTO)
       Select @VNNU_ULTI_AUXI = @VNNU_ULTI_AUXI+(@VNNU_ULTI_ASTO - @VNNU_ULTI_AUXI) + 1
       -- Arma Asiento
       Select @VSNU_ULTI_AUXI = Replicate('0',10-datalength(Convert(Varchar(10),@VNNU_ULTI_AUXI))) + Convert(Varchar(10),@VNNU_ULTI_AUXI)
       Select @VSNU_ASTO = @VSNU_ULTI_AUXI

       Select @VSCO_OPRC_CNTB = @CSCO_OPRC_CNTB
       Select @VSCO_UNID_CNTB = @CSCO_UNID_CNTB
       Select @VNNU_ANNO      = @CNNU_ANNO
       Select @VNNU_MESE      = @CNNU_MESE

       Select @VNNU_SECU = 0
    End
    
    SELECT @VNNU_SECU = @VNNU_SECU + 1 

    If @CNCO_TABL_ORIG is not null
       Begin  
    If @ISTI_INTE = 'S' And (@VSNU_ASTO_AUXI != @CSNU_ASTO)
    Begin
      -- Interface Con Actualizaci>n
      Select @VSNO_TABL = CO_TABL, @VNNU_LLAV = NU_LLAV, @VSCA_LLAV = CA_ESTR, 
             @VSPK_0001 = PK_0001, @VSPK_0002 = PK_0002, @VSPK_0003 = PK_0003,
             @VSPK_0004 = PK_0004, @VSPK_0005 = PK_0005, @VSPK_0006 = PK_0006,
             @VSPK_0007 = PK_0007, @VSPK_0008 = PK_0008, @VSPK_0009 = PK_0009,
             @VSPK_0010 = PK_0010, @VSPK_0011 = PK_0011, @VSPK_0012 = PK_0012,
             @VSPK_0013 = PK_0013, @VSPK_0014 = PK_0014, @VSPK_0015 = PK_0015,
             @VSTI_DATO_0001 = TI_DATO_0001, @VSTI_DATO_0002 = TI_DATO_0002,
             @VSTI_DATO_0003 = TI_DATO_0003, @VSTI_DATO_0004 = TI_DATO_0004,
             @VSTI_DATO_0005 = TI_DATO_0005, @VSTI_DATO_0006 = TI_DATO_0006,
             @VSTI_DATO_0007 = TI_DATO_0007, @VSTI_DATO_0008 = TI_DATO_0008,
             @VSTI_DATO_0009 = TI_DATO_0009, @VSTI_DATO_0010 = TI_DATO_0010,
             @VSTI_DATO_0011 = TI_DATO_0011, @VSTI_DATO_0012 = TI_DATO_0012,
             @VSTI_DATO_0013 = TI_DATO_0013, @VSTI_DATO_0014 = TI_DATO_0014,
             @VSTI_DATO_0015 = TI_DATO_0015
      From   OFIINTE..TTTABL_INTE
      Where  CO_SIST = @ISCO_SIST
      And    NU_ORDE = @CNCO_TABL_ORIG    

      -- Arma Cadenas Where
      Select @VNNU_CONT = 0
      Select @VSCA_WHER = ' Where '
      Select @VNCA_INIC =1 -- Para Sacar Posiciones de Dos En Dos
      Select @VNPO_INIC =1 -- Para Recuperar Cadena
      Select @VSCO_CLAV_TAOR = @CSCO_CLAV_TAOR
      While @VNNU_CONT < @VNNU_LLAV
      Begin 
        Select @VNNU_CONT = @VNNU_CONT + 1
        -- Calculo long.
        Select @VNCA_CARA = Convert(Int,Substring(@VSCA_LLAV,@VNCA_INIC,2))
        Select @VNCA_INIC = @VNCA_INIC + 2 -- Para Lectura Siguiente
        Select @VSVA_RECU = Substring(@VSCO_CLAV_TAOR,@VNPO_INIC,@VNCA_CARA)
        Select @VNLO_CADE = DataLength(@VSCO_CLAV_TAOR)
     
        -- Para el oltimo que puede ser secuencial

        If @VNNU_CONT < @VNNU_LLAV
           Select @VSCO_CLAV_TAOR = Substring(@VSCO_CLAV_TAOR,@VNCA_CARA+1,@VNLO_CADE-@VNCA_CARA)
        Else
           Select @VSCO_CLAV_TAOR = Ltrim( @VSCO_CLAV_TAOR )        

        Select @VNNU_POSI = CharIndex('#',@VSVA_RECU)
        If @VNNU_POSI > 0    
           Select @VSVA_RECU = Substring(@VSVA_RECU,1,@VNNU_POSI-1)

        If @VNNU_CONT = 1
        Begin
          Select @VSCA_WHER = @VSCA_WHER + @VSPK_0001 + ' = '+ @VSTI_DATO_0001 + @VSVA_RECU + @VSTI_DATO_0001 + ' '
        End
        Else If @VNNU_CONT = 2
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0002 + ' = '+ @VSTI_DATO_0002 + @VSVA_RECU + @VSTI_DATO_0002+ ' '
        End
        Else If @VNNU_CONT = 3
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0003 + ' = '+ @VSTI_DATO_0003 + @VSVA_RECU + @VSTI_DATO_0003 + ' '
        End
        Else If @VNNU_CONT = 4
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0004 + ' = '+ @VSTI_DATO_0004 + @VSVA_RECU + @VSTI_DATO_0004 + ' '
        End
        Else If @VNNU_CONT = 5
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0005 + ' = '+ @VSTI_DATO_0005 + @VSVA_RECU + @VSTI_DATO_0005 + ' '
        End
        Else If @VNNU_CONT = 6
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0006 + ' = '+ @VSTI_DATO_0006 + @VSVA_RECU + @VSTI_DATO_0006 + ' '         
        End
        Else If @VNNU_CONT = 7
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0007 + ' = '+ @VSTI_DATO_0007 + @VSVA_RECU + @VSTI_DATO_0007 + ' '
        End
        Else If @VNNU_CONT = 8
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0008 + ' = '+ @VSTI_DATO_0008 + @VSVA_RECU + @VSTI_DATO_0008 + ' '
        End
        Else If @VNNU_CONT = 9
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0009 + ' = '+ @VSTI_DATO_0009 + @VSVA_RECU + @VSTI_DATO_0009 + ' '
        End
        Else If @VNNU_CONT = 10
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0010 + ' = '+ @VSTI_DATO_0010 + @VSVA_RECU + @VSTI_DATO_0010 + ' '
        End
        Else If @VNNU_CONT = 11
        Begin
          Select @VSCA_WHER =  @VSCA_WHER + ' And ' + @VSPK_0011 + ' = '+ @VSTI_DATO_0011 + @VSVA_RECU + @VSTI_DATO_0011 + ' '
        End
        Else If @VNNU_CONT = 12
        Begin
          Select @VSCA_WHER = @VSCA_WHER + ' And ' + @VSPK_0012 + ' = '+ @VSTI_DATO_0012 + @VSVA_RECU + @VSTI_DATO_0012 + ' '
        End
        Else If @VNNU_CONT = 13
        Begin
          Select @VSCA_WHER = @VSCA_WHER + ' And ' + @VSPK_0013 + ' = '+ @VSTI_DATO_0013 + @VSVA_RECU + @VSTI_DATO_0013 + ' '
        End
        Else If @VNNU_CONT = 14
        Begin
          Select @VSCA_WHER = @VSCA_WHER + ' And ' + @VSPK_0014 + ' = '+ @VSTI_DATO_0014 + @VSVA_RECU + @VSTI_DATO_0014 + ' '
        End
        Else If @VNNU_CONT = 15
        Begin
          Select @VSCA_WHER = @VSCA_WHER + ' And ' + @VSPK_0015 + ' = '+ @VSTI_DATO_0015 + @VSVA_RECU + @VSTI_DATO_0015 + ' '
        End
        
      End 

      Select @VSNU_CNTB_EMPR = Convert(VarChar(1),@CNNU_CNTB_EMPR)
      Select @VSNU_ANNO = Convert(VarChar(4),@CNNU_ANNO)
      Select @VSNU_MESE = Convert(VarChar(2),@CNNU_MESE)
      Select @VSNU_ASTO = @VSNU_ULTI_AUXI
      -- Arma Update

      If @CNCO_TABL_ORIG != 1 AND @CNCO_TABL_ORIG != 2 
      Begin
        If @VSNO_TABL = 'TCDOCU_CLIE' Or @VSNO_TABL = 'TCCOBR'            Select  @VSNO_TABL = 'OFIVENT..'+@VSNO_TABL
        Else
           Select  @VSNO_TABL = 'OFITESO..'+@VSNO_TABL

        Select @VSCA_UPDA = ' Update ' + @VSNO_TABL
        Select @VSCA_NUCN = ' Set NU_CNTB_EMPR = '+@VSNU_CNTB_EMPR+' '
        Select @VSCA_COUN = ' ,CO_UNID_CNTB = "'+@CSCO_UNID_CNTB+'",'
        Select @VSCA_COOP = ' CO_OPRC_CNTB = "'+@CSCO_OPRC_CNTB+'",'
        Select @VSCA_NUAN = ' NU_ANNO = '+@VSNU_ANNO+','
        Select @VSCA_NUME = ' NU_MESE = '+@VSNU_MESE+','
        Select @VSCA_ASIE = ' NU_ASTO = "'+@VSNU_ASTO+'"'
   End
      Else
      Begin
        -- Select 'entro', @VSNO_TABL
        If @VSNO_TABL = 'TCDOCU_CLIE' Or @VSNO_TABL = 'TCCOBR'
           Select  @VSNO_TABL = 'OFIVENT..'+@VSNO_TABL
        Else
           Select  @VSNO_TABL = 'OFITESO..'+@VSNO_TABL

        Select @VSCA_UPDA = ' Update ' + @VSNO_TABL
        Select @VSCA_NUCN = ' Set NU_CNEM_REND = '+@VSNU_CNTB_EMPR+','
        Select @VSCA_COUN = ' ,CO_UNCN_REND = "'+@CSCO_UNID_CNTB+'",'
        Select @VSCA_COOP = ' CO_OPCN_REND = "'+@CSCO_OPRC_CNTB+'",'
        Select @VSCA_NUAN = ' NU_ANNO_REND = '+@VSNU_ANNO+','
        Select @VSCA_NUME = ' NU_MESE_REND = '+@VSNU_MESE+','
        Select @VSCA_ASIE = ' NU_ASTO_REND = "'+@VSNU_ASTO+'"'
      End

      If @VSNU_ASTO_AUXI != @VSCA_ASIE
      Begin
        Exec( @VSCA_UPDA + @VSCA_NUCN + @VSCA_COUN + @VSCA_COOP + @VSCA_NUAN + @VSCA_NUME + @VSCA_ASIE + @VSCA_WHER )
        If @@error <> 0
        Begin
          Close CU_TXMVTO_INTE_I02_1
          Deallocate CU_TXMVTO_INTE_I02_1
          Rollback tran
	  Return
        End 
      End
    End
    End 
  -- Inserta en Tabla Movimientos
    Select @VSCO_USUA_MODI = Convert( Char(4), @CNNU_ANNO ) + 
                             Convert( Char(2), Substring(Convert( Char(3), 100+@CNNU_MESE ),2,2) ) + 
                             Convert( Char(4), Substring(Convert( Char(5), 100+@INNU_PROC ),2,4) )
    Insert Into TXMVTO_CNTB (
         CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,
         NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB,
         CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU,
         NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE,
         FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,
         IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE,
         FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ,                                                                                                                     
         CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG,
         CO_OPRC_ORIG, NU_ASTO_ORIG, ST_OTRS, NU_PROC,
         ST_IMPR_CHEQ, ST_FLAG, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, 
         CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER, ST_CANC_DOCU )
    Values(
         @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,
         @CNNU_ANNO, @CNNU_MESE, @VSNU_ASTO, @VNNU_SECU , @CDFE_ASTO_CNTB,
         @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU,
         @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE,
         @CNFA_CAMB, @CNFA_CAMB_DIAR, @CSTI_OPER, @CNIM_MVTO_ORIG,
         @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,
         @CDFE_DOCU_REFE, @CSNO_GIRA, @CDFE_ENTR_CHEQ, @CDFE_PROG_CHEQ,                                                                                                                     
         @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, @CSCO_UNID_ORIG,
         @CSCO_OPRC_ORIG, @CSNU_ASTO_ORIG, @CSST_OTRS, @INNU_PROC, -- @CSNU_PROC,
         @CSST_IMPR_CHEQ, @CSST_FLAG, @ISCO_USUA, @IDFE_USUA, @VSCO_USUA_MODI, @CDFE_USUA_MODI, 
         @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER, @CSST_CANC_DOCU )

	 If @@error <> 0
         Begin
           Close CU_TXMVTO_INTE_I02_1
           Deallocate CU_TXMVTO_INTE_I02_1
           Rollback tran
	   Return
         End 

      -- Si varia asiento
      If @CSCO_UNID_CNTB + @CSCO_OPRC_CNTB + @CSNU_ASTO != @VSCO_UNID_ANTE + @VSCO_OPRC_ANTE + @VSNU_ASTO_ANTE
      Begin
       Select @VSNU_ASTO_ANTE = @CSNU_ASTO
       Select @VSCO_UNID_ANTE = @CSCO_UNID_CNTB
       Select @VSCO_OPRC_ANTE = @CSCO_OPRC_CNTB

       Update TCFECH_PROC
       Set NU_ULTI_ASTO = CONVERT(INT , @VSNU_ASTO)
       Where  CO_EMPR      = @CSCO_EMPR   
       And    NU_CNTB_EMPR = @CNNU_CNTB_EMPR
       And    CO_UNID_CNTB = @CSCO_UNID_CNTB
       And    CO_OPRC_CNTB = @CSCO_OPRC_CNTB
       And    NU_ANNO      = @CNNU_ANNO
       And    NU_MESE      = @CNNU_MESE

       If @@error <> 0
    	 Begin
           Close CU_TXMVTO_INTE_I02_1
           Deallocate CU_TXMVTO_INTE_I02_1
           Rollback tran
       Return
         End 
        End

    Fetch CU_TXMVTO_INTE_I02_1 Into
          @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,
          @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO, @CNNU_SECU, @CDFE_ASTO_CNTB,
          @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU,
          @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE,
          @CNFA_CAMB, @CNFA_CAMB_DIAR, @CSTI_OPER, @CNIM_MVTO_ORIG,
          @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,
          @CDFE_DOCU_REFE, @CSNO_GIRA, @CDFE_ENTR_CHEQ, @CDFE_PROG_CHEQ,                                                                                                                     
          @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, @CSCO_UNID_ORIG,
          @CSCO_OPRC_ORIG, @CSNU_ASTO_ORIG, @CSST_OTRS, @CSNU_PROC, 
          @CNNU_PROC_SECU,
          @CSST_IMPR_CHEQ, @CSST_FLAG, @CSCO_USUA_MODI, @CDFE_USUA_MODI, 
          @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER, @CSST_CANC_DOCU       

     If @@error <> 0
     Begin
       Close CU_TXMVTO_INTE_I02_1
       Deallocate CU_TXMVTO_INTE_I02_1
       Rollback tran
       Return
     End 
  End

  Close CU_TXMVTO_INTE_I02_1
  Deallocate CU_TXMVTO_INTE_I02_1

  -- Actualiza Status
  Update OFIINTE..TTPROC_INTE
  Set    ST_PROC = @IST_DEFI
  Where  CO_EMPR = @ISCO_EMPR
  And    NU_PROC = @INNU_PROC

  If @@error <> 0
  Begin
    Close CU_TXMVTO_INTE_I02_1
    Deallocate CU_TXMVTO_INTE_I02_1
    Rollback tran
    Return
  End 

-- PROCEDURE ACTUALIZA SOLO PARA LAS OPERACIONES DEL PROCESO 
Exec SP_TTINTE_CNTB_U02 @ISCO_EMPR, @ISCO_SIST, @INNU_PROC
Commit Transaction

/*--------------------------- Fin ---------------------------------*/




GO
